#pragma once
#include"HashTable.h"
template<class K,class Hash=HashFunc<K>>
class Myset
{
public:
	struct SetOfT
	{
		K operator()(const K& key)
		{
			return key;
		}
	};
	typedef typename HashTable<K, const K, SetOfT, Hash>::Iterator iterator;
	typedef typename HashTable<K, const K, SetOfT, Hash>::ConstIterator const_iterator;
	 pair<iterator,bool> insert(const K&key)
	{
		return _h.Insert(key);
	}
	iterator begin()
	{
		return _h.Begin();
	}
	iterator end()
	{
		return _h.End();
	}
	const_iterator begin()const
	{
		return _h.Begin();
	}
	const_iterator end() const 
 	{
		return _h.End();
	}
private:
	HashTable<K, const K, SetOfT, Hash> _h;
};